
// https://segmentfault.com/a/1190000012095054
// 定义表结构模型 

// Schema  
// Schema主要用于定义MongoDB中集合Collection里文档document的结构  {username:'a',age:19,pass:'123'}
// mongoose对表结构的定义(不仅仅可以定义文档的结构和属性，还可以定义文档的实例方法、静态模型方法、复合索引等)
// 每个schema会映射到mongodb中的一个collection，schema不具备操作数据库的能力
// 定义Schema非常简单，指定字段名和类型即可，支持的类型包括以下8种

// String      字符串
// Number      数字    
// Date        日期
// Buffer      二进制
// Boolean     布尔值
// Mixed       混合类型
// ObjectId    对象ID    
// Array       数组

const mongoose = require('mongoose');
const Schema = mongoose.Schema

const user_schema = new Schema({
    username:String,
    age:Number,
    password:String,
    phone:String,
    address:String
})

// Model是由Schema编译而成的假想（fancy）构造器  具有抽象属性和行为
// Model的每一个实例（instance）就是一个document，document可以保存到数据库和对数据库进行操作
// model是由schema生成的模型，可以对数据库的操作 
// mongoose.model(表名name,Schema)

exports.user_model = mongoose.model('users',user_schema) 

// 复数  
// 如果名称的最后一个字符是字母，则会变成复数；如果名称的最后一个字符是数字，则不变
// user1   users   
// city = cities  

const movie_schema = new Schema({
  "genres" :Array, 
  "casts" : Array, 
  "directors" :Array, 
  "rating" : Object, 
  "title" : String, 
  "collect_count" : Number, 
  "original_title" : String, 
  "subtype" : String, 
  "year" : String, 
  "images" :Object, 
  "alt" :String,
  "id" : String
})
exports.movie_model = mongoose.model('movies',movie_schema) // movie=> movies 